use crate::vector::vector::Vector;

#[test]
fn identity_vector() {
    let vector1 = Vector::new(vec![0.0, 2.0, 5.0, 0.0]);
    println!("{:?}", vector1);
    let vector2 = vector1.get_identity();
    println!("{:?}", vector2);
}

#[test]
fn add_vector() {
    let vector1 = Vector::new(vec![0.0, 2.0, 5.0, 0.0]);
    let vector2 = Vector::new(vec![0.0, 2.0, 3.0, 0.0]);
    let vector3 = vector1 + vector2;
    println!("{:?}", vector3);
}

#[test]
fn mul_vector() {
    let vector1 = Vector::new(vec![0.0, 2.0, 5.0, 0.0]);
    let vector2 = 3.0 * vector1.clone();
    println!("{:?}", vector2);
    let vector3 = vector1.clone() * 3.0;
    println!("{:?}", vector3);
}

#[test]
fn div_vector() {
    let vector1 = Vector::new(vec![0.0, 2.0, 5.0, 0.0]);
    let vector2 = vector1.clone() / 3.0;
    println!("{:?}", vector2);
}

#[test]
fn dot_vector() {
    let vector1 = Vector::new(vec![0.0, 2.0, 5.0, 0.0]);
    let vector2 = Vector::new(vec![0.0, 2.0, 3.0, 0.0]);
    let dot_result = vector1.dot(vector2);
    println!("{:?}", dot_result);
}

#[test]
fn cross_vector() {
    let vector1 = Vector::new(vec![1.0, 3.0, 4.0]);
    let vector2 = Vector::new(vec![2.0, 7.0, 5.0]);

    let cross_result1 = vector1.cross(vector2);
    println!("{:?}", cross_result1);

    let vector3 = Vector::new(vec![3.0, 4.0]);
    let vector4 = Vector::new(vec![2.0, 6.0]);

    let cross_result2 = vector3.cross(vector4);
    println!("{:?}", cross_result2);
}
